In order to provide communication between a host computer and a plurality of external input/output (I/O) units, or devices, such as disks, tapes, printers, display devices, etc., it is effective for data processing systems to utilize an intermediate control processor which communicates with the host computer processor and in turn communicates with a large number of I/O devices. Control of which devices require the transfer of data to and from the host computer then residues in the intermediate I/O controller.
In most conventional systems utilizing such approach the host processor supplies an appropriate command to an I/O controller processor which in turn interprets such commands so that the I/O device required can be identified and the appropriate data processing and transfer operation can occur. The host normally supplies such command in sequence and the I/O processor processes such commands in such sequence. If the I/O processor is busy with a particular command requiring the servicing of a specified I/O device the host must wait until that process has been completed before it can issue subsequent commands related either to the same or to a different I/O device. Such an approach normally requires the transfer of a relatively large number of commands from the host processor and does not permit the controller to make the most effective use of a sequence of such commands. For example, if the host processor desires to access blocks of data from, or to store blocks of data on, an I/O device such as a disk, for example, such data blocks may reside at various locations on the disk and the Read/Write head which accesses the device must move from one location to the other in accordance with the particular command received by the I/O controller. Since in many cases the sequence of movements of the head on a particular disk required for a specific sequence of commands may not represent the most efficient movement for transferring all of the data required by such sequence, it is desirable to establish a more effective manner for controlling the data transfer to or from the same I/O device in an optimized fashion.
It is further desirable to arrange for the I/O controller to operate in response to a reduced number of commands from the host processor so that the host processor can transfer the desired information with the least amount of host processor time and with reduced I/O communication overhead so that the host processor can perform other tasks in the meanwhile.